package anshe.struct
{
	import flash.utils.ByteArray;
	
	public class SWFData extends Object
	{
		public var swfName:String;		//	要载入的 SWF 文件的代表名
		public var swfData:Array;		//	下载的 SWF 数据数组（一个二维数组）
		public var swfTotal:Number;		//	总计需要下载字节
		public var swfLoad:Number;		//	已经下载的字节
		
		public function SWFData(fName:String = "")
		{
			swfName = fName;
			swfData = new Array();
			swfTotal = 0;
			swfLoad = 0;
		}
		
		//	读取下载进度
		public function get precent():Number
		{
			return Math.ceil(swfLoad / swfTotal * 1000)/10;
		} 
		
		//	压入一条记录
		public function push(id:Number, array:Array):void
		{
			swfData[id] = array;
			swfLoad += array.length;
		}
		
		//	将所有接收到的记录转换成一个 ByteArray 数组，用于重现
		public function toByteArray():ByteArray
		{
			var bArray:ByteArray = new ByteArray();
			
			for(var i:int = 0; i < swfData.length; i++)
			{
				if(swfData[i])
				{
					var tArray:Array = swfData[i];
					for(var j:int = 0; j < tArray.length; j++)
					{
						bArray.writeByte(tArray[j]);
					}
				}
			}
			
			return bArray;
		}
		
		public function toString():String
		{
			return 	" swf:" + this.swfName +
					" total:" + this.swfTotal +
					" load:" + this.swfLoad; 
		}
	}
}